import 'package:get/get.dart';
import 'package:fixnum/fixnum.dart' as $fixnum;

/// 房间榜单日期（日/周/月）页面controller
class RoomRankDateController extends GetxController {
  final $fixnum.Int64 channelId;
  final String scope;

  RoomRankDateController(this.channelId, this.scope);

  // List<SimpleChannelUser>? data;

  // SimpleChannelUser? mySelf;

  String? errorMsg;

  int _offset = 0;

  bool hasMore = false; // 暂时不分页

  @override
  void onInit() {
    super.onInit();
  }

  @override
  void onReady() {
    super.onReady();
    // loadData();
  }

  // /// 目前一页返回，不做分页，最多50条
  // Future loadData({LoadState state = LoadState.init}) async {
  //   // errorMsg = null;
  //   // if (state == LoadState.refresh || state == LoadState.init) {
  //   //   _offset = 0;
  //   //   // hasMore = true;
  //   //   if (state == LoadState.init) {
  //   //     reset();
  //   //     update();
  //   //   }
  //   // }
  //   // var resp = await RtcApi.instance
  //   //     .getChannelUserList(channelId, _offset, 50, scope: scope ?? '');
  //   // if (resp.isSuccess && resp.data != null) {
  //   //   if (state == LoadState.loadMore) {
  //   //     data ??= [];
  //   //     data!.addAll(resp.data!.users);
  //   //   } else {
  //   //     data = resp.data!.users;
  //   //     mySelf = resp.data!.myself;
  //   //   }
  //   //   // hasMore = resp.data!.users.length >= 50;
  //   //   _offset++;
  //   // } else {
  //   //   String msg = resp.errorMsg ?? T.current!.service_error_retry;
  //   //   if (state == LoadState.refresh) {
  //   //     showToast(msg);
  //   //   } else {
  //   //     errorMsg = msg;
  //   //   }
  //   // }
  //   update();
  // }

  void reset() {
    // hasMore = true;
    // data = null;
    errorMsg = null;
  }

  // int get len => (data?.length ?? 0) + (hasMore ? 1 : 0);

  /// 最接近我的用户
  // SimpleChannelUser? get nearbyMeUser {
  //   if (mySelf == null) return null;
  //   if (mySelf!.rank < 0) {
  //     return data?.last;
  //   } else if (mySelf!.rank > 1 && mySelf!.rank < (data?.length ?? 0)) {
  //     return data?[mySelf!.rank - 2];
  //   }
  //   return null;
  // }

  static String getTag($fixnum.Int64 channelId, String scope) {
    return '${channelId}_$scope';
  }
}
